package com.fairy.common.valid;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet;
import java.util.Set;

/**
 * @Description:
 * @Created: with IntelliJ IDEA
 * @author: fairykunkun
 * @createTime: 2023-02-16 13:04
 */
public class ListValueConstraintValidator implements ConstraintValidator< ListValue, Integer > {
	private Set< Integer > set = new HashSet<> ( );
	
	/**
	 * 初始化方法
	 *
	 * @param constraintAnnotation
	 */
	@Override
	public void initialize ( ListValue constraintAnnotation ) {
		int[] vals = constraintAnnotation.vals ( );
		for ( int val : vals ) {
			set.add ( val );
		}
	}
	
	/**
	 * 判断是否校验成功
	 *
	 * @param value   需要校验的值
	 * @param context
	 * @return
	 */
	@Override
	public boolean isValid ( Integer value , ConstraintValidatorContext context ) {
		// 判断是否有包含的值
		boolean contains = set.contains ( value );
		return contains;
	}
}
